package medium;

import pojo.ListNode;

import java.util.ArrayList;
import java.util.List;

public class T19 {
    public static void main(String[] args) {
        ListNode listNode = new ListNode(1);
        listNode.next = new ListNode(2);
        listNode.next.next = new ListNode(3);
        listNode.next.next.next = new ListNode(4);
        listNode.next.next.next.next = new ListNode(5);
        removeNthFromEnd(listNode, 2);
    }

    public static ListNode removeNthFromEnd(ListNode head, int n) {
        // 数据存储每个节点
        List<ListNode> nodes = new ArrayList<ListNode>();
        for (int i = 0; i < 30; i++) {
            nodes.add(head);
            if (head.next == null) {
                break;
            }
            head = head.next;
        }
        // 找到指定节点并删除
        int target = nodes.size() - n;
        if (nodes.size() == 1) {
            return null;
        } else {
            if (target == 0) {
                return nodes.get(1);
            } else if (target == nodes.size() - 1) {
                nodes.get(target - 1).next = null;
            } else {
                nodes.get(target - 1).next = nodes.get(target + 1);
            }
        }
        return nodes.get(0);
    }
}
